const type = require('../models/type');
const log = require('log4js').getLogger("type");
const systemlogs = require('../models/systemlogs');
/**
 * 添加分类
 */
exports.add_type = function(req,res){
    const args = req.body;
    let params = [];
    if(!args.name){//分类名称
        return res.send({success:false,data:'请填写分类名称，以便我们识别！'});
    };
    if(!args.status){//分类状态1：正常，2：禁用
        return res.send({success:false,data:'请填写分类状态，以便确定是否启用！'});
    };
    if(!args.lcon){//分类的小图标
        return res.send({success:false,data:'您应该选择一个分类图标，这样会更美观奥！'});
    };
    params = [
        args.name,
        args.status,
        args.lcon,
        new Date()//创建时间时当前时间
    ];
    type.add_type(args, params, function(err,result){
        if(err){
            return res.send({success:false,data:err});
        }else if(result.rowCount == 0){//创建失败
            return res.send({success:false,data:'很遗憾，您此次添加分类失败了!'});
        }else{
            let desc = req.user.username+'添加了名字为“'+args.name+'”的分类';
            const params_sys = [
                req.user.id,
                desc,
                new Date(),
                6
            ];
            systemlogs.add_systemlogs(params_sys, function(err, result){});//添加日志
            return res.send({success:true,data:'恭喜您，添加分类成功！'});
        }
    })
};
/**
 * 批量删除分类
 */
exports.remove_type = function(req,res){
    const args = req.body;
    if(!args.ids){//要删除的分类的id数组集合
        return res.send({succeaa:false,data:'请至少选择一条分类信息，进行删除！'});
    }
    if(args.ids.constructor != Array){//判断是否传的数组类型的
        return res.send({succeaa:false,data:'请以数组方式传递要删除的分类id！'});
    }
    type.remove_type(args, function(err,result){
        if(err){
            return res.send({success:false,data:err});
        }else if(result == null){//不存在
            return res.send({success:false,data:'很遗憾，您删除分类信息不存在！'});
        }else if(result == 'null'){//失败
            return res.send({success:false,data:'很遗憾，您删除分类信息失败！'});
        }else {
            let desc = req.user.username+'删除了一批分类';
            const params_sys = [
                req.user.id,
                desc,
                new Date(),
                6
            ];
            systemlogs.add_systemlogs(params_sys, function(err, result){});//添加日志
            return res.send({success:true,data:'恭喜您，删除分类信息成功！'});
        }
    })
};
/**
 *批量编辑分类状态（启用禁用）
 */
exports.update_status = function(req,res){
    const args = req.body;
    if(!args.ids){//要编辑的分类的id的数组集合
        return res.send({succeaa:false,data:'请至少选择一条分类信息，进行编辑！'});
    }
    if(!args.status){//要编辑成的状态
        return res.send({success:false,data:'请选择状态进行编辑！'});
    }
    if(args.ids.constructor != Array){//编辑的分类id是否是数组集合
        return res.send({succeaa:false,data:'请以数组方式传递要编辑的分类id！'});
    }
    type.update_status(args, function(err,result){
        if(err){
            return res.send({success:false,data:err});
        }else if(result.rowCount == 0){//失败
            return res.send({success:false,data:'很遗憾，您编辑分类信息失败！'});
        }else {
            let desc = req.user.username+'修改了一批分类的状态';
            const params_sys = [
                req.user.id,
                desc,
                new Date(),
                6
            ];
            systemlogs.add_systemlogs(params_sys, function(err, result){});//添加日志
            return res.send({success:true,data:'恭喜您，编辑分类信息成功！'});
        }
    })
};
/**
 * 分类列表
 */
exports.list = function(req,res){
    const args = req.query;
    const limit = args.limit;//每页条数
    const page = args.page;//当前页数
    const params = [
        limit?Number(limit):5,//严格控制为数字类型
        page?limit*(Number(page)-1):0//从第几条开始显示
    ];//查询条件（只限制页数和每页条数）
    type.list(params, function(err,result){
        if(err){//报错
            return res.send({success:false,data:err});
        }else {//返回数据
            return res.send({success:true,data:result.rows});
        }
    })
};
/**
 * 分类列表
 */
exports.list_app = function(req,res){
    type.list_app(function(err,result){
        if(err){//报错
            return res.send({success:false,data:err});
        }else {//返回数据
            return res.send({success:true,data:result.rows});
        }
    })
};
/**
 * 后台数据统计
 */
exports.count_b = function (req,res) {
    const params = [];//后台没有任何限制，单纯的统计所有分类数量
    type.count_b (params, function (err,result) {
        if(err){
            return res.send({success:false,data:err});
        }else {
            return res.send({success:true,data:result.count})//返回时已经处理
        }
    });
};

